#pragma once
#include "CGIRenderTarget.h"

namespace Alice
{
    struct CGIRenderPassInfo
    {
        struct FColorEntry
        {
            CGITexture*         RenderTarget      = nullptr;
            CGITexture*         ResolveTarget     = nullptr;
            int32                ArraySlice        = -1;
            uint8                MipIndex          = 0;
            ERenderTargetActions Action            = ERenderTargetActions::DontLoad_DontStore;
        };
        FColorEntry mColorRenderTargets;
        struct FDepthStencilEntry
        {
            CGITexture*         DepthStencilTarget = nullptr;
            CGITexture*         ResolveTarget      = nullptr;
            EDepthStencilTargetActions Action       = EDepthStencilTargetActions::DontLoad_DontStore;
            //FExclusiveDepthStencil ExclusiveDepthStencil;
        };
        FDepthStencilEntry DepthStencilRenderTarget;
        bool mbIsSwapChain;
        uint32 mbSwapChainImageIndex;
        void ConvertToRenderTargetsInfo(CGISetRenderTargetsInfo& OutRTInfo) const;
    };
}
